﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DAL
{
    public partial class TipoCambio
    {

        public int Add(dbGestionDataContext _db,
                        decimal monto,
                        decimal montoCompra,
                        int  idMonedaBase,
                        int idMonedaCambio,
                        int UsuarioCre,
                        DateTime fecha)
        {
            this.monto = monto;
            this.montoCompra = montoCompra;
            this.idMonedaBase = idMonedaBase;
            this.idMonedaCambio = idMonedaCambio;
            this.fecha = fecha;
            this.fechaCre = DateTime.Now;
            this.fechaMod = DateTime.Now;
            this.usuarioCre = UsuarioCre;
            this.usuarioMod = UsuarioCre;
            _db.TipoCambios.InsertOnSubmit(this);
            _db.SubmitChanges();
            return this.idInternal;
        }

        public bool Update(dbGestionDataContext _db,
                      decimal monto,
                      decimal montoCampra,
                      int idMonedaBase,
                      int idMonedaCambio,
                        int UsuarioMod,
                      DateTime fecha)
        {
            this.monto = monto;
            this.montoCompra = montoCampra;
            this.idMonedaBase = idMonedaBase;
            this.idMonedaCambio = idMonedaCambio;
            this.fecha = fecha;
            this.fechaMod = DateTime.Now;
            this.usuarioMod = UsuarioMod;

            _db.SubmitChanges();
            return true;
        }


        public int getidAnterior(dbGestionDataContext _db, int idinternal)
        {
            int intAnterior = 0;

            int c = _db.TipoCambios.Where(p => p.idInternal < idinternal).Count();
            if (c == 0)
            {
                throw new Exception("No existe Registros");
            }
            else
            {

                
                intAnterior=_db.TipoCambios.Where(a=>a.idInternal<idinternal).Max(a=>a.idInternal);

            }

            
            return intAnterior;

        }
        public int getidSiguiente(dbGestionDataContext _db, int idinternal)
        {
            int intSiguiente = 0;

            //revisar la sentencia generada

            int c = _db.TipoCambios.Where(p => p.idInternal > idinternal).Count();

            if (c == 0)
            {
                throw new Exception("No existe Registros");
            }
            else
            {
                intSiguiente = _db.TipoCambios.Where(p => p.idInternal > idinternal).Min(a => a.idInternal);
            }

            return intSiguiente;
        }

    }
}
